package api

import (
	"gitee.com/gopher2011/gva/server/dao"
	"github.com/gin-gonic/gin"
	"net/http"
)

// 初始化总路由
func Router() *gin.Engine {
	r := gin.Default()
	// 配置静态文件夹路径 第一个参数是URL，第二个是文件夹路径。例如: r.StaticFS("/static", http.Dir("./static")) ===> 访问 /static 对应的 文件地址是: ./static
	// 参考链接: https://www.cnblogs.com/aaronthon/p/12802591.html
	r.StaticFS(dao.Cfg.Local.Path, http.Dir(dao.Cfg.Local.Path))
	// r.Use(middleware.LoadTls()) // 打开就能把当前 http协议切换成 https 协议
	dao.Log.Info("使用日志中间件!")

	// 跨域
	r.Use(Cors())

	// 生成 api 文档
	// https://blog.csdn.net/reachyu/article/details/106410421
	//r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
	return r
}

func Base(group *gin.RouterGroup){
	r := group.Group("/")
	r.POST("/register",SysUser.Register)
	r.POST("/login",SysUser.Login)
}

//func Customer(g *gin.RouterGroup) {
//	r := g.Group("/customer").Use(middleware.OperationRecord())
//	{
//		r.GET("customer")     // 获取单一客户信息
//		r.GET("customerList") // 获取客户列表
//		r.POST("customer")    // 创建客户
//		r.PUT("customer")     // 更新客户
//		r.DELETE("customer")  // 删除客户
//	}
//}
//
//func Excel(g *gin.RouterGroup) {
//	r := g.Group("excel")
//	{
//		r.POST("/importExcel")     // 导入Excel
//		r.GET("/loadExcel")        // 加载Excel数据
//		r.POST("/exportExcel")     // 导出Excel
//		r.GET("/downloadTemplate") // 下载模板文件
//	}
//}
//
//func FileUploadAndDownload(g *gin.RouterGroup) {
//	r := g.Group("/fileUploadAndDownload")
//	{
//		r.GET("/findFile")                  // 查询当前文件成功的切片
//		r.POST("/upload")                   // 上传文件
//		r.POST("/getFileList")              // 获取上传文件列表
//		r.POST("/deleteFile")               // 删除指定文件
//		r.POST("/breakpointContinue")       // 断点续传
//		r.POST("/breakpointContinueFinish") // 查询当前文件成功的切片
//		r.POST("/removeChunk")              // 查询当前文件成功的切片
//	}
//}
//
//func SimpleUploader(g *gin.RouterGroup) {
//	r := g.Group("/simpleUploader")
//	{
//		r.POST("upload")      // 上传功能
//		r.GET("checkFileMd5") // 文件完整度验证
//		r.GET("mergeFileMd5") // 合并文件
//	}
//}
//
//func SysApi(g *gin.RouterGroup) {
//	r := g.Group("/api").Use(middleware.OperationRecord())
//	{
//		r.POST("createApi")         // 创建Api
//		r.POST("deleteApi")         // 删除Api
//		r.POST("getApiList")        // 获取Api列表
//		r.POST("getApiById")        // 获取单条Api消息
//		r.POST("updateApi")         // 更新api
//		r.POST("getAllApis")        // 获取所有api
//		r.DELETE("deleteApisByIds") // 删除选中api
//	}
//}
//
//func SysAuthority(g *gin.RouterGroup) {
//	r := g.Group("/authority").Use(middleware.OperationRecord())
//	{
//		r.POST("createAuthority")  // 创建角色
//		r.POST("deleteAuthority")  // 删除角色
//		r.PUT("updateAuthority")   // 更新角色
//		r.POST("copyAuthority")    // 更新角色
//		r.POST("getAuthorityList") // 获取角色列表
//		r.POST("setDataAuthority") // 设置角色资源权限
//	}
//}
//
//func AutoCode(g *gin.RouterGroup) {
//	r := g.Group("autoCode")
//	{
//		r.POST("preview")    // 获取自动创建代码预览
//		r.POST("createTemp") // 创建自动化代码
//		r.GET("getTables")   // 获取对应数据库的表
//		r.GET("getDB")       // 获取数据库
//		r.GET("getColumn")   // 获取指定表所有字段信息
//	}
//}
//
//func Base(g *gin.RouterGroup) (R gin.IRoute) {
//	r := g.Group("base").Use(middleware.NeedInit())
//	{
//		r.POST("login")
//		r.POST("captcha")
//	}
//	return r
//}
//
//// casbin_规则表
//func CasbinRule(g *gin.RouterGroup) {
//	r := g.Group("/casbin").Use(middleware.OperationRecord())
//	{
//		r.POST("updateCasbin")
//		r.POST("getPolicyPathByAuthorityId")
//	}
//}
//
//func SysDictionary(g *gin.RouterGroup) {
//	r := g.Group("sysDictionary").Use(middleware.OperationRecord())
//	{
//		r.POST("createSysDictionary")   // 新建SysDictionary
//		r.DELETE("deleteSysDictionary") // 删除SysDictionary
//		r.PUT("updateSysDictionary")    // 更新SysDictionary
//		r.GET("findSysDictionary")      // 根据ID获取SysDictionary
//		r.GET("getSysDictionaryList")   // 获取SysDictionary列表
//	}
//}
//
//func SysDictionaryDetail(g *gin.RouterGroup) {
//	r := g.Group("sysDictionaryDetail").Use(middleware.OperationRecord())
//	{
//		r.POST("createSysDictionaryDetail")   // 新建SysDictionaryDetail
//		r.DELETE("deleteSysDictionaryDetail") // 删除SysDictionaryDetail
//		r.PUT("updateSysDictionaryDetail")    // 更新SysDictionaryDetail
//		r.GET("findSysDictionaryDetail")      // 根据ID获取SysDictionaryDetail
//		r.GET("getSysDictionaryDetailList")   // 获取SysDictionaryDetail列表
//	}
//}
//
//func Email(g *gin.RouterGroup) {
//	r := g.Group("email").Use(middleware.OperationRecord())
//	{
//		r.POST("emailTest") // 发送测试邮件
//	}
//}
//
//func Init(g *gin.RouterGroup) {
//	r := g.Group("init")
//	{
//		r.POST("initdb", api.InitDB)   // 创建Api
//		r.POST("checkdb", api.CheckDB) // 创建Api
//	}
//}
//
//func Jwt(g *gin.RouterGroup) {
//	r := g.Group("jwt").Use(middleware.OperationRecord())
//	{
//		r.POST("jsonInBlacklist") // jwt加入黑名单
//	}
//}
//
//func Menu(g *gin.RouterGroup) (R gin.IRoute) {
//	r := g.Group("menu").Use(middleware.OperationRecord())
//	{
//		r.POST("getMenu")          // 获取菜单树
//		r.POST("getMenuList")      // 分页获取基础menu列表
//		r.POST("addBaseMenu")      // 新增菜单
//		r.POST("getBaseMenuTree")  // 获取用户动态路由
//		r.POST("addMenuAuthority") // 增加menu和角色关联关系
//		r.POST("getMenuAuthority") // 获取指定角色menu
//		r.POST("deleteBaseMenu")   // 删除菜单
//		r.POST("updateBaseMenu")   // 更新菜单
//		r.POST("getBaseMenuById")  // 根据id获取菜单
//	}
//	return r
//}
//
//func SysOperationRecord(g *gin.RouterGroup) {
//	r := g.Group("sysOperationRecord").Use(middleware.OperationRecord())
//	{
//		r.POST("createSysOperationRecord")        // 新建SysOperationRecord
//		r.DELETE("deleteSysOperationRecord")      // 删除SysOperationRecord
//		r.DELETE("deleteSysOperationRecordByIds") // 批量删除SysOperationRecord
//		r.GET("findSysOperationRecord")           // 根据ID获取SysOperationRecord
//		r.GET("getSysOperationRecordList")        // 获取SysOperationRecord列表
//	}
//}
//
//func System(g *gin.RouterGroup) {
//	r := g.Group("system").Use(middleware.OperationRecord())
//	{
//		r.POST("getSystemConfig") // 获取配置文件内容
//		r.POST("setSystemConfig") // 设置配置文件内容
//		r.POST("getServerInfo")   // 获取服务器信息
//		r.POST("reloadSystem")    // 重启服务
//	}
//}
//
//func SysUser(g *gin.RouterGroup) {
//	r := g.Group("user").Use(middleware.OperationRecord())
//	{
//		r.POST("register")
//		r.POST("changePassword")   // 修改密码
//		r.POST("getUserList")      // 分页获取用户列表
//		r.POST("setUserAuthority") // 设置用户权限
//		r.DELETE("deleteUser")     // 删除用户
//		r.PUT("setUserInfo")       // 设置用户信息
//	}
//}
//
